草庐IT

c++ - qdbusxml2cpp 未知类型

全部标签

c# - 获取强类型方法的名称

认为我有一个像下面这样的类:publicclassFoo{publicintBar{get;set;}publicintSum(inta,intb){returna+b;}publicintSquare(inta){returna*a;}}所有你知道的,我可以写一个返回给定属性名称的方法:varname=GetPropertyName(f=>f.Bar);//returns"Bar"GetPropertyName方法可以很容易地实现如下:publicstaticstringGetPropertyName(Expression>exp){varbody=exp.BodyasMemberE

c# - 在 Roslyn 分析器中检查表达式类型的正确方法?

我正在使用Roslyn编写代码分析器,我需要检查是否有ExpressionSyntax类型为Task或Task.到目前为止我有这个:privatestaticboolIsTask(ExpressionSyntaxexpression,SyntaxNodeAnalysisContextcontext){vartype=context.SemanticModel.GetTypeInfo(expression).Type;if(type==null)returnfalse;if(type.Equals(context.SemanticModel.Compilation.GetTypeByMe

c# - CodeDom 泛型类型约束

有没有办法用CodeDom生成类约束。因为当我使用类似的东西时varmethod=newCodeMemberMethod();vargenericParam=newCodeTypeParameter("InterfaceType");genericParam.Constraints.Add("class");method.TypeParameters.Add(genericParam);生成的代码是这样的privateInterfaceTypeGetImpl()whereInterfaceType:@class{}我发现最好的解决方法是在课前使用前导空格genericParam.Con

c# - XmlSerializer 在序列化动态加载的类型时抛出异常

我正在尝试使用System.Xml.Serialization.XmlSerializer来序列化动态加载(和编译的类)。如果我将有问题的类构建到主程序集中,一切都会按预期进行。但是,如果我从动态加载的程序集中编译和加载该类,XmlSerializer会引发异常。我做错了什么?我创建了以下.NET3.5C#应用程序来重现该问题:usingSystem;usingSystem.Collections.Generic;usingSystem.Xml.Serialization;usingSystem.Text;usingSystem.Reflection;usingSystem.CodeD

c# - 配置 Unity 以解析采用修饰依赖项的类型,该依赖项的参数随注入(inject)的类型而变化

这是一个相当直接的装饰器模式场景,复杂的是装饰类型有一个构造函数参数,该参数取决于它被注入(inject)的类型。我有一个这样的界面:interfaceIThing{voidDo();}像这样的实现:classRealThing:IThing{publicRealThing(stringconfiguration){...implementation...}publicvoidDo(){...implementation...}}还有这样的装饰器:classDecoratingThing:IThing{IThing_innerThing;publicDecoratingThing(IT

c# - Wpf ICollectionView 绑定(bind)项无法解析类型对象的属性

我绑定(bind)了一个GridView用ICollectionView在XAML设计器中,属性未知,因为CollectionView中的实体已转换为类型Object并且无法访问实体属性,它运行正常没有错误,但设计器将其显示为错误,如果我绑定(bind)到集合我可以正常访问属性例如实体是Person用stringName我把它们放在ObservableCollection中并从中获取View并将其绑定(bind)到GridView.ItemsSource现在,当我尝试设置列标题时DataMemberBinding.FirstName设计者将其显示为错误的属性CannotResolvep

c# - 根据类型和参数列表删除 ifs

我想重构以下递归方法:publicstaticvoidInitialize(Controlcontrol,DocumentContainercontainer,ErrorProviderprovider){if(control==null){return;}varcontrolWithTextBase=controlasICustomControlWithText;if(controlWithTextBase!=null){controlWithTextBase.DocumentLoaded=true;controlWithTextBase.Initialize(container,p

c# - 如何将泛型类型传递给泛型方法?

为什么我不能调用SomeGenericMethod>?classNotGeneric{}classGeneric{}classProgram{staticvoidMain(string[]args){PrintType(typeof(NotGeneric));PrintType(typeof(Generic));PrintType();PrintType>();//compilergoescrazyhere}staticvoidPrintType(){Console.WriteLine(typeof(T));}staticvoidPrintType(Typet){Console.Wri

c# - 我可以使用类型化工厂设施返回基于(枚举)参数的实现吗?

不确定这是否可能。我需要根据枚举值返回正确的服务实现。所以手工编码的实现看起来像这样:publicenumMyEnum{One,Two}publicclassMyFactory{publicITypeIWantToCreateCreate(MyEnumtype){switch(type){caseMyEnum.OnereturnnewTypeIWantToCreate1();break;caseMyEnum.TworeturnnewTypeIWantToCreate2();break;default:returnnull;}}}返回的实现具有额外的依赖项,需要通过容器注入(inject

c# - 获取 CoreCLR 中的可用类型

这很容易在旧的.NET中获取所有可用类型(例如对于某些接口(interface)),但我找不到在新的CoreCLR中如何做到这一点的方法。我想要做的是拥有像GetRepository这样的功能,它应该寻找IRepository的现有实现并返回该类型的新实例。实现将位于不同的项目中。所以,在.NET中我可以使用这样的东西:AppDomain.CurrentDomain.GetAssemblies().SelectMany(a=>a.GetTypes())目前我对CoreCLR的唯一解决方案是:publicTGetRepository(){foreach(Typetypeintypeof(